/* eslint-disable no-async-promise-executor */
const model = require("../models/model")
const Files = model.files.Files // 获取模型
// const UUID = require('uuid')
// const { getQiniuDownload } = require('../util')
// require('dotenv').config()
const { PRO_API, DEV_API } = process.env

// 传单个id 或者多个id 获取图片地址
exports.getFile = (id) => {
  return new Promise(async(resolve) => {
    if (!id) {
      resolve(id)
      return
    }
    let data = id.toString().split(',')
    let flag = 0
    for (let i = 0; i < data.length; i++) {
      if (data[i].length >= 10) { // 判断为网络资源地址（非自己服务器地址）
        flag++
        data[i] = {
          id: data[i],
          name: data[i],
          url: data[i],
          type: 'external'
        }
        if (flag === data.length) { // 循环完成
          resolve(data)
        }
      } else { // 判断为内部资源id（进行数据库查询）
        Files.findOne({ where: { id: data[i] }}).then(res => {
          if (res) { // 数据库找到了
            flag++
            data[i] = {
              id: res.id,
              name: res.name,
              // url: getQiniuDownload(`${res.id}.${res.type}`),
              url: process.env.NODE_ENV == 'development' ? `${DEV_API}/images/${res.id}.${res.type}` : `${PRO_API}/images/${res.id}.${res.type}`,
              type: 'inside'
            }
            if (flag === data.length) { // 循环完成
              resolve(data)
            }
          } else { // 没找到直接删除当前id
            data.splice(i, 1)
            if (flag === data.length) { // 循环完成
              resolve(data)
            }
          }
        })
      }
      // 不区分是 网络地址还是id了直接查询
      // Files.findAll({
      //   where: {
      //     id: data[i]
      //   }
      // }).then(res => {
      //   flag++
      //   if (res !== undefined && res.length > 0) {
      //     data[i] = process.env.NODE_ENV == 'development' ? `${DEV_API}/images/${res[0].id}.${res[0].type}` : `${PRO_API}/image/${res[0].id}.${res[0].type}`
      //   }
      //   if (flag === data.length) {
      //     let url = data.join(',')
      //     resolve(url)
      //   }
      // })
    }
  })
}